package com.zhuyuan.common.log.annotation;

import com.zhuyuan.common.log.enums.OperateType;
import com.zhuyuan.common.log.enums.SourceType;

import java.lang.annotation.*;

/**
 * @Author: 张琳凯
 * @Description: 自定义的日志记录注解，通过加入该注解，来存储对应的日志
 * 示例：@Log(title = "用户管理", operaType = BusinessType.UPDATE, sourceType=SourceType.MANAGE)
 * @DateTime: 2024/12/19 13:11
 **/
@Target({ElementType.PARAMETER,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log {
    /**
     * 名称
     * */
    public String title() default "";
    /**
     * 操作的动作（如增删改查等动作）
     * */
    public OperateType operaType() default OperateType.OTHER;
    /**
     * 操作来源（如后台操作，移动端操作）
     * */
    public SourceType sourceType() default SourceType.MANAGE;
    /**
     *
     * */
    public boolean isSaveRequestData() default  true;
    /**
     *
     * */
    public boolean isSaveResponseData() default true;
    /**
     *
     * */
    public String[] excludeParamNames() default {};

}
